import config from "@/config";  // 配置文件
import storage from "./storage"; // 缓存封装

export default {
	console(options){
		if(config.debug){
			// console.log("<<===============================================>>");
			// console.log("request start");
			// console.log("header" + JSON.stringify(options.header));
			// console.log("method: " + options.method + " URL: " + options.url);
			// console.log(options.data);
			// console.log("request end");
			// console.log("<<===============================================>>");
		} 
	},
	domain(){
		return config.uni_app_web_api_url.replace("api","");
	},
	send(options={}){
		// console.log(options.data.hideLoading,'各种参数')
		if(!options.data.hideLoading){
			// loading加载
			uni.showLoading({
				title: '加载中'
			});	
		}
        
        
        // 拼接路劲，下面的配置文件会提到
		options.url = config.uni_app_web_api_url + '' + options.url;
        // 请求方式
		options.method = options.method || "GET";
		
        // 这里看项目的情况来定，如果是没有token，那就删除这里，上面的storage也不需要引入
		let token = storage.get("token");
		if(token != null){
			options.header = { "Access-Token" : token };
		}
		if(options.data.ContentType){
			options.header["Content-Type"] ='application/form-data' ;
		}
		if(options.data.device){
			options.header["device"] = options.data.device ;
		}
		if(options.data.platform){
			options.header["platform"] = options.data.platform ;
		}
		
		this.console(options);  // 打印请求数据，调试用，上线可以注释
        
        // 发起Promise请求
		return new Promise((resolve, reject) =>{
			uni.request(options).then(data=>{
				let dataList = data.data
				// var [error, res] = data;
				if(dataList.status == 401){
					storage.remove('token')
					setTimeout(() => {
						uni.reLaunch({
							url: '/pages/login/index'
						});
					}, 1000);
					uni.hideLoading();
					reject(dataList.message);
				} else if(dataList.status!=200){
					if(!options.data.hideLoading){
						uni.hideLoading();
					}
					reject(dataList.message);
				} else{
                    // 相应拦截、根据后端的状态码来写，可以自行判断和封装
					// if(res.data.status == '-1001'){
						if(!options.data.hideLoading){
							uni.hideLoading();
						}
						
					// 	uni.navigateTo({
					// 	    url: '/pages/Login/login/login'
					// 	});
					// }else{
						resolve(dataList); 
					// }
				}
			})
			.catch(err=>{
				// console.log(err,'错误信息')
				uni.hideLoading();
				resolve(err); 
			});
		});
	},
	get(url="",data={}){
		return this.send({
			url: url,
			data: data
		});
	},
	post(url="",data={}){
		return this.send({
			url: url,
			data: data,
			method: "POST"
		});
	}
};
